package com.ipzoe.common.bean.entity;

import com.ipzoe.common.util.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.persistence.Transient;
import java.util.List;

/**
 * 菜单
 * <p>
 * Created on 2018/1/18.
 *
 * @author pfzhang
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value = "AdminMenu", description = "菜单")
public class AdminMenu extends BaseEntity {

    /** 父菜单ID */
    @ApiModelProperty("父ID-必填")
    private Long father;

    /** 菜单图标 */
    @ApiModelProperty("菜单图标-必填")
    private String icon;

    /** 菜单层级 0=1级菜单；1=2级菜单；2=三级菜单(默认0) */
    @ApiModelProperty("菜单层级 0=1级菜单；1=2级菜单；2=三级菜单(默认0)")
    private Integer level;

    /** 菜单排序 值越小排序越靠前，正序排序 */
    @ApiModelProperty("菜单排序 值越小排序越靠前，正序排序-必填")
    private Integer order;

    /** 跳转路径 */
    @ApiModelProperty("跳转路径-必填")
    private String stateRef;

    /** 是否有参数：0=无参数；1=有参数 */
    @ApiModelProperty("是否有参数：0=无参数；1=有参数")
    private Integer type;

    /** 菜单名称 */
    @ApiModelProperty("菜单名称-必填")
    private String title;

    /** 是否有子菜单,没有=0,有=1 */
    @ApiModelProperty("是否有子菜单,没有=0,有=1")
    private Integer hasSub;

    /** 子菜单列表 */
    @Transient
    @ApiModelProperty("子菜单列表")
    private List<AdminMenu> subMenu;
}
